镜像常用操作
提示有权限问题,请在命令前加sudo
操作 | 命令 | 举例 | 备注 |
---|---|---|---|
登录docker hub | docker login -u xxx -p xxx | docker login -u 用户名 -p 密码 | |
拉取镜像 | docker pull NAME[:TAG] | docker pull mysql:5.6 | |
上传镜像 | docker push NAME[:TAG] | docker push mydocker:v1 | 先登录 |
查看本地镜像 | docker images [-a/q] NAME | docker images ubuntu | a【全部】 q【只显示ID】 |
删除镜像 | docker rmi [-f] IMAGE[:TAG] [IMAGE...] | docker rmi mysql:5.6 redis | f【强制删除】 |
标记镜像 | docker tag SIMAGE TIMAGE | docker tag ubuntu:18.10 cool/ubuntu:v1 | |
导出镜像 | docker save -o xxx.tar IMAGE[:TAG] [IMAGE...] | docker save -o dockers.tar mysql redis:4.0 | 可以一次性导出多个镜像 |
导出镜像并压缩 | docker save IMAGE[:TAG] [IMAGE...]|gzip > xxx.tar.gz | docker save mysql:5.7 node:8 | gzip > app.tar.gz |
导入镜像 | docker load [-i] xxx | docker load -i xxx.tar docker load<xxx.tar.gz |
用于镜像备份 |
容器常用操作
操作 | 命令 | 举例 | 备注 |
---|---|---|---|
创建容器 | docker run/create [-i/d/t/p/v/-name/-link] IMAGE [COMMAND] | docker run --name nginx -p 80:80 -v /data:/data --link redis:redis -d nginx:latest docker run -it nginx:latest /bin/bash |
it【以交互模式运行容器】 p【端口映射,格式为:主机(宿主)端口:容器端口】 --name【指定容器名称】 --link【链接其他容器】 d【后台运行容器】 v【文件映射 格式为 本地文件:容器文件】 create只是创建容器并不运行 |
启动/停止/重启容器 | docker start/stop/restart CONTAINER [CONTAINER ...] | docker start redis nginx docker start 09b93464c2f7 |
可以使用容器名称或ID,支持一次操作多个容器 |
删除容器 | docker rm [-f/v] CONTAINER [CONTAINER ...] | docker rm nginx | f【强制删除】 v【同时删除容器映射的本地文件或目录】 |
在容器中执行命令 | docker exec -it CONTAINER /bin/bash | docker exec -it 9df70f9a0714 /bin/bash | |
查看容器列表 | docker ps [-a/n/q] | docker ps docker ps -aq |
a【列出所有容器包括停止运行的容器】 n【列出最近创建的n个容器】 q【静默模式,只显示容器编号】 |
容器与主机之间的数据拷贝 | docker cp SPATH DPATH | docker cp /www/runoob 96f7f14e99ab:/www/ docker cp 96f7f14e99ab:/www /tmp/ |
不论容器是否在运行,都可拷贝成功 |
获取容器/镜像的元数据 | docker inspect IMAGE/CONTAINER | docker inspect mysql:5.6 | |
连接到正在运行中的容器 | docker attach CONTAINER | docker attach --sig-proxy=false nginx | --sig-proxy=false来确保CTRL-D或CTRL-C不会关闭容器 |
暂停/取消暂停容器 | docker pause/unpause CONTAINER | docker pause mysql | |
从容器创建一个新的镜像 | docker commit [-a/c/m/p] CONTAINER IMAGE[:TAG] | docker commit -a "我" -m "修改配置" a404c6c174a2 my-nginx:v1 | a【镜像作者】 c【使用Dockerfile指令来创建镜像】 m【备注信息】 p【在commit时,将容器暂停】 |
导出容器 | docker export [-o] CONTAINER | docker export -o mysql.tar a404c6c174a2 | |
导入容器镜像 | docker import xxx.tar IMAGE[:TAG] | docker import nginx-test.tar nginx:imp | 使用此方式导入的镜像,镜像所有历史会丢失 |
docker环境日常维护快捷操作
操作 | 命令 | 备注 |
---|---|---|
停止所有运行的容器 | sudo docker stop $(sudo docker ps -q) | |
启动所有容器 | sudo docker start $(sudo docker ps -aq) | |
删除所有容器 | sudo docker stop $(sudo docker ps -q)&&sudo docker rm $(sudo docker ps -aq) | 删除容器要确保容器处于停止状态 |
删除untagged images镜像 | sudo docker rmi $(sudo docker images | grep "^<none>" | awk "{print $3}") | |
删除所有镜像 | sudo docker rmi $(sudo docker images -q) | 删除镜像要确保镜像没有被容器引用 |
查看容器IP端口 | sudo docker inspect --format='{{.NetworkSettings.IPAddress}}' 99c83edf2af1 |
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。